// 引入Vue核心组件
import Vue from "vue";
// 引入根组件
import App from "./App.vue";
//引入头部|底部的全局组件
import Header from "./components/Header";
import Footer from "./components/Footer";
import Typenav from "./components/Typenav";
import Pagination from './components/pagination'
//定义全局组件:全局组件只需要注册一次即可！！！
//第一个参数:全局组件名字  第二参数:那个组件
Vue.component(Header.name, Header);
Vue.component(Footer.name, Footer);
Vue.component(Typenav.name, Typenav);
Vue.component(Pagination.name, Pagination);
// 引入路由组件
import router from "./router";

// 引入仓库
import store from "./store";
import "@/utils/request";

//引入mock/mockServe文件
import "@/mock/mockServe";

// 如果项目中没有vuex,发请求这个套路需要学会?
// 统一引入
import * as ajax from '@/api';

// 引入路由守卫的文件夹,至少执行一次,要不然不干活
import '@/permisstion';

Vue.config.productionTip = false;

new Vue({
  render: (h) => h(App),
  //配置全局事件总线
  beforeCreate() {
    //this:即为VM,vue类的实例
    Vue.prototype.$bus = this;
    //相当于给Vue.prototype添加一个动态属性$ajax,导致全部组件的VC都可以直接使用项目当中全部请求函数
   //组件不需要引入请求函数
   Vue.prototype.$ajax = ajax;
  },

  // 注册路由器
  // 会使(任何vue组件)身上动态添加两个属性$route与$router属性
  router,
  // 注册仓库
  // 会使(任何组件)身上都有一个$store这样一个属性
  store,
}).$mount("#app");
